必要的准备工作
- ES6特性的基本了解
- Vue2.0框架
- element-ui
- axios 请求接口
- vue-router 官方路由组件
- Mock.js 拦截ajax请求生成假数据
- vue-element-admin官方文档
环境的搭建
Node.js和Git的安装
- https://nodejs.org/en/ (开代理访问速度更快)
- https://git-scm.com/downloads Windows下的Git工具
VSCode自带的集成终端powershell在npm全局安装需要管理员权限
VSCode插件推荐及配置相关
必备插件
- ESLint
插件化的 javascript 代码检测工具 - Prettier
代码美化插件 - Vetur
vue 插件 语法高亮、智能感知、Emmet 等 - Gitlens
git 日志插件
推荐插件
- Better Comments
可配置的代码注释插件 - Auto Rename Tag
自动重命名 HTML/XML 标签 - Open in browser
在默认浏览器打开 HTML 文件 - Path Intellisense
自动路劲补全 - Polacode
代码截图 - Setting Sync
同步 VScode 插件配置 - VSCode Great Icons
文档类型图标 - Dracula Official
暗色系主题 - Bracket Pair Colorizer
让括号拥有独立的颜色,易于区分
推荐的插件配置
1 | { |
把以上配置放入VScode IDE 下 .vscode/settings.json
工作区设置里
准备开始搬砖
补充关于路径@占位符:webpack.base.conf.js
1 | module.exports = { |
webpack配置的路径,@占位符表示src。
所有的功能实现都从路由开始
路由和侧边栏是组织起一个后台应用的关键骨架
1 | { |
关于keep-alive:是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。
使用Mock数据进行开发
基础路由侧边栏的配置
@/router/index.vue
1 | { |
创建API请求方法
在 @api 文件夹下创建API
@/api/pi.js
1 | import request from '@/utils/request' |
使用Mock.js拦截请求
在@/mock/index.js
添加拦截规则
1 | import raspberryPiAPI from './pi' //导入创建的API |
添加对拦截接口的Mock数据进行生成
新建Mock生成规则文件@/mock/pi.js
1 | import Mock from 'mockjs' |
创建路由所指向对应的业务组件
@/views/pi/index.vue
1 | <template> |
关于slot-scope:vue原生slot-scope 的值将被用作一个临时变量名,可以接收父组件传过来的值, 而在element中的table对slot-scope的值封装成了一个大的对象,对象里面有属性row(行),column(列),$index(索引),store,所以我们可以通过scope.row拿到对应的值。
使用真实接口进行开发
基础路由侧边栏的配置
@/router/index.vue
1 | { |
每个页面或者模块特定的业务组件则会写在当前 views 下面。如:@/views/article/components/xxx.vue
创建和视图对应的API
在 @api 文件夹下创建API
@api/getClassReport.js
1 | //vue-element-admin 封装的请求方法 |
创建路由所指向对应的业务组件
在views下创建目录和@views/getClassReport/index.vue
父组件
1 | <template> |
创建输入框子组件
@views/getClassReport/input.vue
1 | <template> |
创建echarts饼图组件
@views/getClassReport/PieChart.vue
关于Echarts 使用方法需要到http://echarts.baidu.com/充电 ,我也是搬砖而已。
1 | <template> |
进阶扩展
例: 安装日志组件
https://www.npmjs.com/package/vuejs-logger
在终端输入安装
1 | npm install vuejs-logger --save-exact |
把日志组件设置成全局组件
在main.js
引入日志组件
1 | import VueLogger from 'vuejs-logger' |
在其他组件就可以很简单的使用它来打印一些对象和变量了
1 | this.$log.debug('response', response.data) |
关于一些第三方组件模块的引用,查看文档内的相关说明。
关于icon图标自定义
阿里”爸爸”的庞大的图标库:http://iconfont.cn/
在图标库里搜索你想要的图标,下载该图标SVG文件,然后扔进@/icons
食用方法:
1 | <svg-icon icon-class="password" /> |
比Font Awesome图标字体库使用舒服多了。
构建打包
这里打包只是在本地打包 ,没有使用CI进行打包构建。
修改打包环境
在/config
目录下配置dev.env.js
开发环境地址 或新增其他环境文件
1 | module.exports = { |
打包命令
1 | 打包正式环境 |
然后在项目根目录下/dist
目录生成打包后的静态文件。
然后扔到你的CDN或者nginx服务器里就万事大吉了。